package com.gitee.blogcase.gracepaycase.controller;

import com.gitee.blogcase.gracepaycase.dto.PayDTO;
import com.gitee.blogcase.gracepaycase.template.PayTemplate;
import com.gitee.blogcase.gracepaycase.vo.PayVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/pay")
public class PayController {

    @Autowired
    private PayTemplate payTemplate;

    /**
     * 支付
     *
     * @param mode  模式
     * @param payVO 支付签证官
     * @return {@link String}
     */
    @PostMapping("/{mode}")
    public String pay(@PathVariable("mode") String mode, @RequestBody PayVO payVO) {
        PayDTO<PayVO> payDTO = new PayDTO<>();
        payDTO.setMode(mode);
        boolean reslult = payTemplate.pay(payDTO);
        if (reslult) {
            return "支付成功!";
        }
        return "支付失败!";
    }


    /**
     * 旧的支付
     *
     * @param mode  模式
     * @param payVO 支付签证官
     * @return {@link String}
     */
    @PostMapping("/old/{mode}")
    public String oldPay(@PathVariable("mode") String mode, @RequestBody PayVO payVO) {
        switch (mode) {
            case "ALIPAY":
                // 调用支付宝支付流程逻辑方法
                break;
            case "WXPAY":
                // 调用微信支付流程逻辑方法
                break;
            case "EBANK":
                // 调用E支付流程逻辑方法
                break;
            default:
                return "支付方式未找到!";

        }
        return "支付成功!";
    }

}
